home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 551-575 / apd566 / source / mazed mouse.amos / mazed mouse.amosSourceCode
AMOS Source Code  |  1994-01-01  |  3KB  |  19 lines

  1. '   ______________________________________________________________________ 
  2. '  |                                                                      |
  3. '  |                              MAZED MOUSE                             |
  4. '  |                              ~~~~~~~~~~~                             |
  5. '  |             Created for AMOS Basic by Glenn N Babic, 1992            |
  6. '  |                                                                      |
  7. '  |         Use ASCII Reader.AMOS to read "ASCII/Ten Liners.doc"         |
  8. '  |______________________________________________________________________|
  9.  
  10. Curs Off : Flash Off : Double Buffer : Autoback 0 : Hide : Dim M(16,16) : R#=1.45 : H=19 : W=68 : E=160 : F=104 : Pen 14 : Paper 0 : Colour 1,$CB2 : For I=2 To 13 : Colour I,14-I : Next : Do : D=5
  11. Repeat : T=D*70-198 : Z=0 : P=4 : Inc D : For J=1 To D : For I=1 To D : M(I,J)=0 : For K=0 To 3 : If(((K=1 and I<D) or(K=2 and J<D)) and Rnd(1)) or((K=0 or K=3) and Btst((K+2) mod 4,M(I+(K=3),J+(K=0))))
  12. Bset K,M(I,J) : End If : Next : Next : Next : X=Rnd(D-1)+1 : Y=Rnd(D-1)+1 : Repeat : U=Rnd(D-1)+1 : V=Rnd(D-1)+1 : Until(X-U)^2+(Y-V)^2>(D/2)^2 : Bset 6,M(U,V) : Repeat : Dec T : A$=Inkey$
  13. C=Scancode-75 : Add B,(C=4)-(C=3),0 To 3 : M=(B=3)-(B=1) : N=(B=0)-(B=2) : If C=1 and Btst(B,M(X,Y)) : Add X,M : Add Y,N : End If : L=(X+M>0 and X+M<=D and Y+N>0 and Y+N<=D)
  14. If C=2 and Btst(B,M(X,Y))=0 and P>0 and L : Bell 1 : Bset B,M(X,Y) : Bset(B+2) mod 4,M(X+M,Y+N) : Dec P : End If : Bset 7,M(X,Y) : Clw : For J=4 To 0 Step -1 : Q#=R#^(4-J) : P#=R#^(5-J) : Y1=H*Q#
  15. Y2=H*P# : Y3=H*R#^(4.5-J) : Ink 2*J+5 : Bar 0,F+Y1+1 To 320,F+Y2+1 : For I=-2 To 2 : I#=I-0.5 : X1=W*Q#*I# : X2=W*Q#*I : X3=W*P#*I# : U=X+M*J-N*I : V=Y+M*I+N*J
  16. If U>-1 and U<(D+2) and V>-1 and V<(D+2) : If Btst(B,M(U,V))=0 : Ink 2*J+3 : Bar E+X1,F-Y1 To E+X1+W*Q#,F+Y1 : End If : If Btst(7,M(U,V)) : Ink 15 : Circle E+X2,F+Y3,Q# : End If : If Btst(6,M(U,V))
  17. Ink 1 : Polygon E+X2,F+Y3-20*P# To E+X2-13*P#,F+Y3 To E+X2+13*P#,F+Y3 : End If : If Btst((B+3) mod 4,M(U,V))=0 : Ink 2*J+2 : Polygon E+X1,F-Y1 To E+X3,F-Y2 To E+X3,F+Y2 To E+X1,F+Y1 : End If 
  18. End If : Next : Next : Print At(0,0);"Maze:";D-5;"  Score:";S;"  Time:";T/2;"  ";String$("*",Min(P,6)) : Add P,T/33-(T-1)/33 : Screen Swap : Z=Btst(6,M(X,Y)) : Until Z or T=0 : If Z : Bell 40
  19. Wait 50 : Add S,T : End If : Until T=0 or(Z and D=15) : Clear Key : If Z : A$="Finished!!" : Bell 63 Else A$="Time's Up!" : Boom : S=0 : End If : Print At(15,11);A$ : Screen Swap : Wait Key : Loop